package com.mybatisplus.generator;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.mybatisplus.common.ConfigUtils;

import java.util.List;

public class Generator {
//    public static void main(String[] args) {
//
//    }
    public static void main(String[] args) {
        String batshPath = "E:\\mybatisplus";
        AutoGenerator mpg = new AutoGenerator(ConfigUtils.findDbConfig());
        // 设置全局全局配置
        GlobalConfig gc = ConfigUtils.findGlobalConfig(batshPath+"\\src");
        mpg.global(gc);
        // 设置包配置
        PackageConfig pc = ConfigUtils.findPackageConfig("com.maige.p","product","module.compare",
                null,null,"dao.mapper.compare","compare",null,batshPath+"\\resources\\mapper");
        mpg.packageInfo(pc);
        // 策略配置
        StrategyConfig strategy = ConfigUtils.findStrategyConfig(List.of("T_COMPARE_STORE_CONFIG","T_COMPARE_SUPPLIER_CONFIG","T_COMPARE_SUPPLIER_CAT_CONFIG",
                "T_COMPARE_SIMPLE_GOODS_IMPORT","T_COMPARE_SIMPLE_GOODS_RECORD"));
        mpg.strategy(strategy);
        // 注入配置
//        InjectionConfig cfg = new InjectionConfig() {
//            @Override
//            public void initMap() {
//                // 这里可以自定义注入的内容，如果不需要可以不实现这个方法
//            }
//        };

        // 自定义模板路径（如果需要自定义模板，可以在这里配置）
//        List<FileOutConfig> focList = new ArrayList<>();
//        focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
//            @Override
//            public String outputFile(TableInfo tableInfo) {
//                return projectPath + "/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper.xml";
//            }
//        });
//        cfg.setFileOutConfigList(focList);
//        mpg.setCfg(cfg);
//        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
        // 设置

        // 执行生成代码
        mpg.execute();


    }
}
